/**
* Copyright @ 2023 iAuto (Shanghai) Co., Ltd.
* All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are NOT permitted except as agreed by
* iAuto (Shanghai) Co., Ltd.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*/


import {IAntdTablePageParams} from './type';

// 是否是官方场景，0-否,1-是
export type IOfficialScene = 0 | 1;
// 手机端是否可执行，0-否,1-是
export type IExecutedOnPhone = 0 | 1;
// 车机端是否二次确认，0-否,1-是
export type IDoubleCheckOnVehicle = 0 | 1;

// 一车一档场景列表查看参数
export interface IOneCarOneGearSceneListParam extends IAntdTablePageParams {
  vin?: string; // 车辆vin码
  cellPhone?: string; // 车主手机号
}

// 一车一档场景列表查看参数
export interface IOneCarOneGearListParam {
  fuzzyField?: string; // 车辆vin码
  cellPhone?: string; // 手机号
}

export type IOneCarOneGearSceneItem = {
  // 必须 场景名称
  name: string;
  //  必须 场景ID
  sceneUuid: string;
  // 必须 icon图标
  iconUrl: string;
  // 必须 车系名称
  seriesName: string;
  // 必须 更新人
  updateUser: string;
  // 必须 更新时间
  updateTime: string;
  // 履历UUID
  sceneRecordUuid: string;
};

// 一车一档场景列表查看
export type IOneCarOneGearSceneList = IOneCarOneGearSceneItem[];

// 一车一档
export type IOneCarOneGearItem = {
  // 必须 车辆编码
  vin: string;
  // 必须 车系名称
  seriesName: string;
  // 必须 车型名称
  modelName: string;
  // 必须 更新时间
  updateTime: string;
  // 履历UUID
  sceneRecordUuid: string;
  // tsp 车型名称
  typeName:string;
};

// 一车一档列表查看
export type IOneCarOneGearList = IOneCarOneGearItem[];

export type IOneCarOneGearSceneDetail = {
  // 必须 场景名称
  name: string;
  //  必须 场景ID
  sceneUuid: string;
  //  必须 场景描述
  description: string;
  //  必须 场景描述
  version: string;
  // 必须 场景图标Url
  iconUrl: string;
  // 必须 场景背景图UUID
  backgroundPicUrl: string;
  // 必须 品牌名称
  brandName: string;
  // 必须 车系名称
  seriesName: string;
  // 必须 车型名称
  modelName: string;
  // 必须 分类名称
  categoryName: string;
  // 非必须 是否是官方场景，0-否,1-是
  officialScene?: IOfficialScene;
  // 非必须 是否是官方场景，0-否,1-是
  executedOnPhone?: IExecutedOnPhone;
  // 非必须 车机端是否二次确认，0-否,1-是
  doubleCheckOnVehicle?: IDoubleCheckOnVehicle;
  // 非必须 申请时间
  applyTime?: string;
  //  非必须 开发者id
  developerId?: string;
  //  非必须 开发者名字
  developerName?: string;
  // 必须 创建时间
  createTime: string;
  // 必须 更新时间
  updateTime: string;
};

export enum IOneCarOneGearTabEnum {
  service = 1,
  ability = 2,
  scene = 3
}
